一、SGL [2020]

《Self-supervised Graph Learning for Recommendation》

  1. 用于推荐的 representation learning on user-item graph 已从使用单个 IDinteraction history 发展到利用高阶邻居。这导致了图卷积网络 (graph convolution networks: GCN )在推荐领域的成功,例如 PinSageLightGCN 。尽管有效,但我们认为它们存在两个局限性:

    • (1)high-degree 节点对 representation learning 产生更大影响,从而降低 low-degree items (长尾 items )的推荐效果。

    • (2)representations 容易受到 noisy interactions 的影响,因为 neighborhood aggregation 方案进一步扩大了 observed edges 的影响。

    在这项工作中,我们探索了 user-item graph 上的自监督学习,以提高 GCN 在推荐中的准确性和鲁棒性。这个想法是用辅助的自监督任务来补充经典的监督推荐任务,这通过 self-discrimination 来强化 node representation learning 。具体而言,我们生成一个节点的多个视图,最大化同一节点的不同视图的一致性(与其他节点的不同视图之间比较)。我们设计了三种算子来生成视图:node dropoutedge dropoutrandom walk ,它们以不同的方式改变图结构。我们将这种新的学习范式称为自监督图学习 (Self-supervised Graph Learning : SGL ),并在 SOTA 的模型 LightGCN 上实现它。通过理论分析,我们发现 SGL 具有自动挖掘 hard negatives 的能力。在三个基准数据集上进行的实证研究证明了 SGL 的有效性,它提高了推荐准确率(尤其是长尾 items 的推荐准确率),以及对 interaction noises 的鲁棒性。我们的实现可在 https://github.com/wujcan/SGL 上找到。

  2. 从交互数据中学习高质量的 user and item representations 是协同推荐的核心。早期的矩阵分解(matrix factorization: MF )等方法将每个用户(或 item )的单一 ID 映射到一个 embedding 向量中。后续一些研究通过结合 interaction history 来丰富单一ID ,以学习更好的 representations 。最近,representation learning 已发展到利用 user-item graph 中的高阶连接性(higher-order connectivity )。该技术受图卷积网络(graph convolution network: GCN )的启发,GCN 提供了一种端到端的方式,将 multi-hop neighbors 的信息集成到 node representation learning 中,并在推荐任务中取得了 SOTA 的性能。

    尽管 GCN-based 的推荐模型取得了不错的效果,但它们仍存在一些局限性:

    • 监督信号稀疏:大多数模型在监督学习范式下处理推荐任务,监督信号来自观察到的 user-item interactions 。然而,与整个 interactions空间相比,观察到的 interactions 极其稀疏,不足以学到高质量的 representations

    • 数据分布不均衡:观察到的 interactions通常呈现幂律分布,长尾部分由缺乏监督信号的 low-degree items 组成。相比之下,high-degree itemsneighborhood aggregationsupervised loss 中出现得更为频繁,对 representation learning 的影响更大。因此,GCN 容易偏向 high-degree items ,牺牲 low-degree (long-tail) items 的性能。

    • interactions中的噪声:用户提供的大多数反馈是隐式的(例如点击、浏览),而非显式的(例如评分、喜欢 / 不喜欢)。因此,观察到的interactions通常包含噪声,例如用户可能被误导点击某个 item ,但使用后发现并不感兴趣。GCN 中的 neighborhood aggregation 机制放大了 interactionsrepresentation learning 的影响,使得学习过程更容易受到 interaction noises 的干扰。

    在这项工作中,我们专注于在推荐任务中探索自监督学习(self-supervised learning: SSL),以解决上述局限性。尽管自监督学习在计算机视觉和自然语言处理中已得到广泛应用,但在推荐领域的探索相对较少。其核心思想是设置一个辅助任务,从输入数据本身提取额外的信号,特别是通过利用 unlabeled data space。例如:

    • BERT 会随机掩码句子中的一些 tokens ,把 prediction of the masked tokens 作为辅助任务,以此捕获 tokens 之间的依赖关系。

    • RotNet 随机旋转 labeled images ,在旋转后的图像上训练模型,以获得 improved representations 从而用于物体识别(object recognition )或图像分类。

    与监督学习相比,自监督学习允许我们通过对输入数据进行变换来利用 unlabeled data space ,从而在下游任务中取得显著改进 。

    在这里,我们希望将自监督学习的优势引入 recommendation representation learning 中。由于推荐数据具有离散的且相互连接的特点,这与计算机视觉和自然语言处理任务有所不同。为了解决 GCN-based 的推荐模型的上述局限性,我们构建了一个辅助任务,即区分节点自身的 representation 。具体来说,它包含两个关键组件:

    • (1):数据增强,为每个节点生成多个视图。

    • (2):对比学习,最大化同一节点的不同视图之间的一致性,同时最小化与其他节点视图之间的一致性。

    对于 user-item graph 上的 GCN ,图结构作为输入数据,在 representation learning 中起着至关重要的作用。从这个角度出发,通过改变图邻接矩阵(graph adjacency matrix )来构建 "unlabeled" data space 是很自然的想法,为此我们开发了三种算子:node dropoutedge dropoutrandom walk ,每个算子都有不同的原理。然后,我们在改变后的图结构上基于 GCN 进行对比学习。结果,自监督图学习(SGL )通过探索节点之间的内部关系增强了 node representation learning

    从概念上讲,我们的 SGL 在以下几个方面对现有的 GCN-based 的推荐模型进行了补充:

    • (1)node self-discrimination 提供了辅助监督信号,与仅从 observed interactions 中获得的经典的监督信号互补。

    • (2)augmentation 算子(尤其是 edge dropout ),通过有意减少 high-degree nodes 的影响,有助于减轻 degree biases

    • (3):针对不同局部结构和邻居的 multiple views for nodes 增强了模型对 interaction noises 的鲁棒性。

    最后,我们对对比学习范式进行了理论分析,发现它具有挖掘 hard negative examples 的副作用,这不仅提高了性能,还加速了训练过程。

    值得一提的是,我们的 SGL 是模型无关的,可以应用于任何包含 user and/or item embeddinggraph-based model 。在这里,我们在简单而有效的 LightGCN 模型上实现了 SGL 。在三个基准数据集上的实验研究证明了 SGL 的有效性,它显著提高了推荐准确率,尤其是对 long-tail items 的推荐准确率,并增强了模型对 interaction noises 的鲁棒性。我们总结这项工作的贡献如下:

    • 我们设计了一种新的学习范式 SGL ,将 node self-discrimination 作为自监督任务,为 representation learning 提供辅助信号。

    • 除了减轻 degree bias 和提高对 interaction noises 的鲁棒性之外,我们从理论上证明了 SGL 本质上鼓励从 hard negatives 中学习,这一过程由 softmax 损失函数中的温度超参数控制。

    • 我们在三个基准数据集上进行了广泛的实验,以证明 SGL 的优越性。

1.1 预备知识

  1. 我们首先总结 GCN-based 协同过滤模型的常见范式。设 UI 分别为用户集合和 items 集合。设 O+={yu,iuU,iI}observed interactions,其中 yu,i 表示用户 u 之前交互过 item i 。大多数现有模型构建一个二部图 G=(V,E),其中节点集合 V=UI 包含所有用户和所有 items ,边集合 E=O+ 表示 observed interactions

  2. 回顾 GCNGCN 的核心是在图上应用 neighborhood aggregation 方案,通过聚合邻居节点的 representations 来更新中心节点的 representation

    Z(l)=H(Z(l1),G)

    其中:

    • Z(l) 表示第 l 层的 node representationsZ(l1) 是上一层的 node representationsZ(0)ID embeddings (可训练的参数)。

    • H()neighborhood aggregation 的参数,从向量层面来看更具解释性:

      zu(l)=fcombine(zu(l1),faggregate({zi(l1)iNu}))

    为了更新中心节点 u 在第 l 层的 representation ,它首先聚合其邻居 Nu 在第 (l1) 层的 representations ,然后与自身在第 (l1) 层的 representation 相结合。对于 faggregate()fcombine() 有多种设计。可以看到,第 l 层的 representations 编码了图中的 l 阶邻居信息。

    在获得 Lrepresentations 后,可能会有一个 readout 函数 freadout() 来生成 final representations 用于预测:

    zu=freadout({zu(l)l=[0,,L]})

    freadout() 常见的设计包括:仅使用最后一层 zu(L)、对所有层进行拼接、对所有层进行加权求和。

  3. 监督学习的损失:prediction layer 构建在 final representations 之上,以预测用户 uitem i 交互的可能性。一种经典的解决方案是内积,它支持快速检索:

    y^u,i=zuzi

    为了优化模型参数,现有工作通常将该任务构建为一种监督学习任务,监督信号来自 observed interactions (也是图 G 的边)。例如,鼓励预测值 y^u,i 接近真实值 yu,i,并从 missing data 中选择负样本。

    除了上述 point-wise learning ,另一种常见的选择是 pairwiseBayesian Personalized Ranking: BPR 损失,它强制要求 observed interaction 的预测得分高于 unobserved interaction

    Lmain=(u,i,j)Ologσ(y^u,iy^u,j)

    其中:O={(u,i,j)(u,i)O+,(u,j)O} 为训练数据。O=(U×I)O+unobserved interactions 。在这项工作中,我们选择它作为主体的监督任务。

1.2 方法

  1. 我们提出了自监督图学习(Self-supervised Graph Learning: SGL )范式,它通过自监督学习增强了主体的监督任务。Figure 1 展示了 SGL 的工作流程。具体来说,自监督任务(也称为前置任务或辅助任务)是从输入数据的相关性中构建监督信号。

    具体来说,我们介绍如何进行数据增强以生成多个 representation 视图,然后基于所生成的 representations 进行对比学习以构建辅助任务。 SSL 与经典 GCN 以多任务学习的方式相结合。 随后,我们从梯度层面对 SSL 进行理论分析,揭示其与 hard negative mining 的联系。 最后,我们分析了 SGL 的复杂性。

1.2.1 图结构上的数据增强

  1. 直接将计算机视觉和自然语言处理任务中采用的数据增强方法应用于 graph-based recommendation 是不可行的,这是由于其特定的特性:

    • (1):用户和 items 的特征是离散的,如 one-hot ID 和其他 categorical 的变量。因此,图像上的增强操作,如随机裁剪、旋转或模糊,并不适用。

    • (2):更重要的是,与计算机视觉和自然语言处理任务将每个数据实例视为孤立的不同,interaction graph 中的用户和 items 本质上是相互连接和依赖的。

    因此,我们需要为 graph-based recommendation 量身定制新的增强算子(augmentation operators)。

  2. 二部图是基于观察到的 user-item interactions 来构建的,因此包含协同过滤信号。具体来说:

    • 一阶邻居直接描述了用户节点和 items 节点的特性,即用户的 historical items (或 iteminteracted users)可以视为用户(或 item )的 pre-existing 特征。

    • 用户(或item )的二阶邻居节点展示了行为相似的用户(或受众相似的 item )。

    • 此外,从用户到 item 的高阶路径反映了用户对该 item 的潜在兴趣。

    毫无疑问,挖掘图结构中的固有模式有助于 representation learning 。因此,我们在图结构上设计了三种算子:node dropoutedge dropoutrandom walk ,以创建节点的不同视图。这些算子可以统一表示为:

    Z1(l)=H(Z1(l1),s1(G))Z2(l)=H(Z2(l1),s2(G))s1,s2S

    其中两个随机选择 s1s2 独立地应用于图 G,并建立节点的两个相关视图 Z1(l)Z2(l)。我们详细阐述这些 augmentation operators 如下:

    • Node Dropout (ND):以概率 P 从图中丢弃每个节点及其所连接的边。具体来说,s1s2 可以建模为:

      s1(G)=(MV,E),s2(G)=(MV,E)

      其中:M,M{0,1}|V| 为两个应用于节点集合 V 上的 masking vectors ,用于生成两个子图。这样,这种数据增强有望从不同 augmented views 中识别出有影响力的节点,并使 representation learning 对结构变化不那么敏感。

      实验章节提到,ND 是一种特殊类型的 ED:将选中节点的周围的所有边移除。并且实验发现:ND 的性能不如 ED

    • Edge Dropout (ED):以 dropout rate ρ 丢弃图中的边。具体来说,s1s2 可以建模为:

      s1(G)=(V,M1E),s2(G)=(V,M2E)

      其中:M1,M2{0,1}|E| 为两个应用于边集合 E 上的 masking vectors 。只有邻居内的部分连接对 node representations 有贡献。因此,将这两个子图耦合在一起旨在捕获节点局部结构的有用模式,并进一步使 representationsnoisy interactions 更具鲁棒性。

    • Random Walk (RW):上述两种算子生成的子图在所有图卷积层(graph convolution layers)中共享。为了探索更高的能力,我们考虑为不同层分配不同的子图。这可以看作是通过随机游走为每个节点构建一个单独的子图(见 Figure 2 的示例)。假设我们在每一层选择 edge dropout (具有不同的比率或随机数种子),我们可以通过使 masking vector 对层敏感来公式化随机游走:

      s1(G)=(V,M1(l)E),s2(G)=(V,M2(l)E)

      其中:M1(l),M2(l){0,1}|E| 为两个在第 l 层应用于边集合 E 上的 masking vectors

  3. 为了简单起见,我们在每个 epoch 对图结构应用这些增强操作。也就是说,我们在新的 training epoch 开始时为每个节点生成两个不同的视图(对于随机游走,为每个节点在每一层生成两个不同的视图)。注意,两个独立过程(即 s1s2)的丢弃率和掩码率保持相同。我们将不同比率的调优留作未来的工作。同样值得一提的是,这里仅涉及丢弃和掩码操作,不添加任何模型参数。

    • 更复杂的操作是:为每个 training batch 生成不同的视图。

    • 更简单的操作是:生成一组视图,然后在整个训练过程中(跨所有 epoch)共享。

    • 注意:根据论文的实验章节描述,不能混合这三种数据增强操作。也就是说,在整个训练过程中,要么选择 ND、要么选择 ED、要么选择 RW

1.2.2 对比学习

  1. 在建立了节点的 augmented views 之后,我们将同一节点的不同视图视为 positive pairs (即 {(zu,zu)uU}),将任意不同节点的视图视为 negative pairs(即 {(zu,zv)u,vU,uv})。

    • positive pairsauxiliary supervision 鼓励同一节点的不同视图在预测时的一致性。

    • negative pairsauxiliary supervision 则强制不同节点之间的差异。

    正式地,我们遵循 SimCLR 并采用对比损失(即, InfoNCE )以最大化 positive pairs 的一致性并最小化 negative pairs 的一致性:

    Lssluser=uUlogexp(s(zu,zu)/τ)vUexp(s(zu,zv)/τ)

    其中:

    • s() 衡量两个向量之间的相似度,这里设置为余弦相似度函数。

    • τ 是超参数,在 softmax 中称为温度。

    类似地,我们得到 item 侧的对比损失 Lsslitem。将这两个损失结合起来,我们得到自监督任务的目标函数为:

    Lssl=Lssluser+Lsslitem

    实验章节表明:可以采用 in-batch 负样本来代替全局负样本,这会带来性能的略微下降。

 

1.2.3 多任务训练

  1. 为了通过自监督学习任务改进 recommendation ,我们采用多任务训练策略,联合优化经典推荐任务(即,Lmain)和自监督学习任务(即,Lssl):

    L=Lmain+λ1Lssl+λ2Θ22

    其中:

    • ΘLmain 中的模型参数,因为 Lssl 不引入额外参数。

    • λ1,λ2 是超参数,分别控制自监督学习和 L2 正则化的强度。

    我们还考虑了交替优化:先在 Lssl 上进行预训练,然后在 Lmain 上进行微调。更多细节见实验章节。

    实验章节表明:“预训练 --> 微调” 的方式能够带来增益,但是效果不如联合训练。

1.2.4 SGL 的理论分析

  1. 在本节中,我们对 SGL 进行深入分析,旨在回答以下问题:推荐模型如何从自监督学习任务中受益?为此,我们探究公式 Lssluser 中的自监督损失,发现一个原因:它具有执行 hard negative mining 的固有能力,这为优化过程贡献了大且有意义的梯度,并指导 node representation learning 。接下来,我们逐步进行分析。

  2. 正式地,对于节点 uU,自监督损失 Lssluser 关于 representation zu 的梯度如下:

    Lssluser(u)zu=1τ|zu×{c(u)+vU{u}c(v)}

    其中:

    • Lssluser(u)Lssluser 中单个节点 u 的单独项。

    • vU{u} 为是另一个节点,作为节点 unegative view

    • c(u),c(v) 分别表示 positive node unegative node v 对梯度的贡献:

      c(u)=(su((su)su)su)(Pu,u1)c(v)=(sv((su)sv)su)Pu,vPu,v=exp((su)sv/τ)v2Uexp((su)sv2/τ)su=zuzu,su=zuzu

      其中:su,su 分别为节点 u 来自不同视图的 normalized representations 。节点 v 的记号也是类似的。

    之后,我们关注 negative node v 的贡献(参考 c(v)),其范数与以下项成比例:

    c(v)21((su)sv)2exp((su)sv/τ)

    由于 susv 都是单位向量,因此我们可以引入另一个变量 x=(su)sv[1,1] 来简化上述公式:

    g(x)=1x2exp(xτ)

    其中 x 直接反映了 positive node unegative node v 之间的 representation similarity 。根据相似性,我们可以大致将 negative 节点分为两组:

    • (1)hard negative nodes ,它们的 representationspositive node urepresentation 相似(即,0<x1),因此在潜在空间中难以区分 vu

    • (2)easy negative nodes ,它们的 representationspositive node urepresentation 不相似(即,1x<0),并且很容易区分。

    为了研究 hard negativeseasy negatives 的贡献,我们分别设置 τ=1τ=0.1,并绘制 g(x) 随节点相似度 x 的变化的曲线,如图 Figure 3a3b 所示。显然,在不同的条件下,negative 节点的贡献差异很大。具体来说:

    • Figure 3a 所示,当 τ=1 时,g(x) 的值落在到 (0,1.5) 的区间内,并且随着 x 的变化略有变化。这表明负样本,无论 hard 负样本还是 easy 负样本,对梯度的贡献相似。

    • 相比之下,如 Figure 3b 所示,当设置 τ=0.1 时,hard 负样本的 g(x) 值可以达到 4000 ,而 easy 负样本的贡献几乎为零。这表明 hard 负样本节点提供了更大的梯度来指导优化,从而使 node representations 更具区分性,并加速训练过程。

  3. 这些发现启发我们探究 τg(x) 最大值的影响。通过令 g(x) 的导数为零,我们可以得到:

    x=τ2+4τ2

    此时 g(x) 取最大值 g(x) 。为了观察 g(x) 如何随 τ 变化,我们考虑其对数形式:

    lng(x)=ln(1(τ2+4τ2)2exp(τ2+4τ2τ))

    我们分别在 Figure 3c3d 中展示 xlng(x) 的曲线。随着 τ 的减小,最具影响力的负节点变得与正节点更相似(即 x 接近 0.9 );此外,最具影响力的负节点的贡献呈超指数放大(即 g 接近 e8)。因此,适当设置 τ 可以使 SGL 自动执行 hard negative mining

    即,通过选择一个较小的 τ ,这使得 hard negative 样本的梯度呈现较大的贡献,即 “自动执行 hard negative mining”。

    实验章节表明:可以通过超参数调优来选择合适的 τ

  4. 值得一提的是,我们的分析受到先前研究 《Supervised Contrastive Learning》 的启发,但存在主要差异:

    • (1)《Supervised Contrastive Learning》hard 负样本定义为与正样本相似度接近零的样本(即 x0),将 easy 负样本定义为明显不相似的样本(即 x1)。

    • (2) 它没有涉及的区域 x>0,而这在我们的研究中至关重要。创新地,我们在 x>0 的区域提供了更精细的视角,以突出 softmax 中的温度超参数 τ 在挖掘 hard 负样本中的关键作用。

1.2.5 SGL 的复杂度分析

  1. 在本小节中,我们以 Edge Dropout: ED 为策略、LightGCN 为推荐模型来分析 SGL 的复杂度;其他策略的分析方式类似。由于 SGL 不引入可训练参数,其空间复杂度与 LightGCN 相同。模型推理的时间复杂度也相同,因为模型结构没有变化。在以下部分,我们将分析 SGL 训练的时间复杂度。

  2. 假设 user-item interaction graph 中的节点数和边数分别为 |V|Es 设表示训练 epochsB 表示每个训练 batch 的大小,d 表示 embedding 维度,L 表示 GCN 层数,ρ^=1ρ 表示 SGL-ED 的保留概率(keep probability )。复杂度主要来自两个部分:

    • 邻接矩阵的归一化:由于我们每个训练 epoch 生成两个独立的子图,考虑到完整训练图和两个子图的邻接矩阵中的非零元素数量分别为 2|E|2ρ^|E|2ρ^|E|,其总复杂度为 O(4ρ^|E|s+2|E|)

    • 评估自监督损失:在分析中我们仅考虑内积。如公式 Lssluser 所定义,在计算用户侧的 InfoNCE 损失时,我们将所有其他用户节点视为负样本。在一个 batch 内,分子和分母的复杂度分别为 O(Bd)O(BMd),其中 M 是用户数量。因此,每个 epoch 中,用户侧和 item 侧的总复杂度为 O(|E|d(2+|V|))。因此,整个训练阶段的时间复杂度为 O(|E|d(2+|V|)s)

      一种降低时间复杂度的替代方法是仅将 batch 内的用户(或 items )视为负样本,这样总时间复杂度为 O(|E|d(2+2B)s)

      通常 |E||V| 因此 O(|E|d(2+|V|)s) 至少为 O(|V|2) ,对于工业场景是不可行的。

  3. 我们在 Table 1 中总结了 LightGCNSGL-ED 在训练时的时间复杂度。实际上,LightGCNSGL-ED 的分析复杂度处于同一数量级,因为 SGL-ED 的复杂度增加只是对 LightGCN 复杂度的一个缩放。在实践中,以 Yelp2018 数据为例,ρ^=0.8SGL-ED (替代方法)的时间复杂度约为LightGCN3.7 倍,考虑到我们将在实验章节中展示的收敛速度的提升,这是完全可以接受的。测试平台是配备英特尔 i7 - 9700K CPU32GB 内存、以及英伟达 Titan RTX 显卡。在 Yelp2018 上,LightGCNSGL-ED (替代方法)每 epoch 的时间成本分别为 15.2 秒和 60.6 秒,这与复杂度分析结果一致。

    这里时间成本差异不大的核心原因是:数据集太小。对于十亿级别的数据集,SGL 的复杂度太高,难以承受。

1.3 实验

  1. 为了证明 SGL 的优越性并揭示其有效性的原因,我们进行了广泛的实验,并回答以下研究问题:

    • RQ1:与 SOTA 的协同过滤模型相比,SGLtop-K recommendation 方面表现如何?

    • RQ2:在协同过滤中进行自监督学习有哪些好处?

    • RQ3:不同的设置如何影响所提出的 SGL 的有效性?

  2. 数据集:我们在三个基准数据集上进行实验:Yelp2018Amazon - BookAlibaba - iFashion

    遵循 《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》《Neural Graph Collaborative Filtering》,我们对 Yelp2018Amazon - Book 使用相同的 10-core settingAlibaba - iFashion 数据集更为稀疏,我们从中随机抽取 30 万用户,并使用他们在时尚服装上的所有交互数据。

    三个数据集的统计信息总结在 Table 2 中。

    我们遵循《Neural Graph Collaborative Filtering》 中描述的相同策略,将交互数据按照 7 : 1 : 2 的比例划分为训练集、验证集和测试集。对于测试集中的用户,我们遵循 all-ranking 协议 (《Neural Graph Collaborative Filtering》 )来评估top-K 推荐性能,并报告平均 Recall@KNDCG@K ,其中 K=20

    这是按照 interactions 来划分的,而不是按照用户来划分的。

  3. 基线方法:我们将所提出的 SGL 与以下协同过滤模型进行比较:

    • NGCF《Neural Graph Collaborative Filtering》):这是一种基于图的协同过滤方法,在很大程度上遵循标准的 GCN 。它在消息传递过程中额外将二阶 feature interaction 编码到 message 中。我们在建议的范围内调优正则化系数 λ2GCN 层数。

    • LightGCN :该方法设计了一种轻量级图卷积,以提高训练效率和 generation 能力。同样,我们调优 λ2GCN 层数。

    • Mult-VAE :这是一种基于变分自编码器(variational auto-encoder: VAE )的 item-based 的协同过滤方法。它通过额外的 reconstruction 目标进行优化,这可以看作是自监督学习的一种特殊情况。我们遵循建议的模型设置,并调优 droupout rateβ

    • DNN + SSL《Self-supervised Learning for Deep Models in Recommendations》):这是一种 SOTA 的基于自监督学习的推荐方法。以 DNN 作为 items 的编码器,它对 itemspre-existing features 采用两种增强算子:即,特征掩码(feature masking: FM )和特征丢弃(feature dropout: FD )。在我们没有 item feature 可用的情况下,我们将这些增强操作应用于 itemsID embeddings 。我们按照原始论文中的建议调优 DNN 架构(即层数和每层的神经元数量)。

    我们舍弃了像 MFNeuMFGCMCPinSage 等潜在的基线模型,因为先前的工作已经验证了这些基线模型的效果不佳。在 LightGCN 的基础上,我们实现了所提出的 SGL 的三个变体,分别命名为 SGL-NDSGL-EDSGL-RW ,它们分别配备了 Node DropoutEdge DropoutRandom Walk

  4. 超参数设置:

    • 为了进行公平比较,所有模型均从头开始训练,使用 Xavier 方法进行初始化。

    • 模型由 Adam 优化器进行优化,学习率为 0.001batch size2048

    • 早停策略与 NGCFLightGCN 相同。

    • 所提出的 SGL方法继承了共享超参数的最优值。对于SGL 特有的超参数,我们在 {0.005, 0.01, 0.05, 0.1, 0.5, 1.0}{0.1, 0.2, 0.5, 1.0}{0, 0.1, 0.2, 0.3, 0.4 , 0.5} 范围内分别调优 λ1τρ

1.3.1 性能比较(RQ1)

  1. LightGCN 的比较:Table 3 展示了 SGLLightGCN 之间的结果比较。我们发现:

    • 在大多数情况下,SGL 的三种实现方式在很大程度上优于 LightGCN ,这表明用自监督学习补充推荐任务的优越性。

    • SGL 系列中,SGL-ED18 种情况中的 10 种情况下表现最佳,而 SGL-RW 在所有三个数据集上的表现也优于 SGL-ND 。我们将其归因于类似 edge dropout 的算子在捕获图结构中固有模式的能力。

      此外,SGL-ED 在密度较高的数据集(Yelp2018Amazon-Book )上的性能优于 SGL-RW ,而在较稀疏的数据集(Alibaba - iFashion )上略逊一筹。一个可能的原因是,在稀疏数据集中,Edget Dropout 更有可能阻碍 low-degree 节点(不活跃用户和不受欢迎的 items )的连接,而随机游走可以在不同 layers 中恢复它们的连接,如 Figure 2 中节点 u1i1 的情况所示。

    • SGL-NDSGL-EDSGL-RW 相对不稳定。例如,在 Yelp2018Amazon-Book 上,SGL-EDSGL-RW 的结果随着层数的增加而提升,而 SGL-ND 呈现出不同的模式。Node Dropout 可以看作是 Edge Dropout 的一种特殊情况,它丢弃了少量节点周围的所有边。因此,丢弃 high-degree 节点会极大地改变图结构,从而影响 information aggregation ,并使训练不稳定

    • Amazon-BookAlibaba-iFashion 上的改进比在 Yelp2018 上更为显著。这可能是由数据集的特性造成的。具体来说,在 Amazon-BookAlibaba-iFashion 中,来自 user-item interactions 的监督信号过于稀疏,无法在 LightGCN 中指导representation learning 。受益于自监督任务,SGL 获得了辅助监督来帮助 representation learning

    • 将模型深度从 1 增加到 3 能够提升 SGL 的性能。这表明利用自监督学习可以增强 GCN-based 的推荐模型的泛化能力。也就是说,不同节点之间的对比学习有望解决 node representations 的过平滑问题(oversmoothing issue ),进一步避免过拟合问题。

  2. SOTA 模型的比较:在 Table 4 中,我们总结了与各种基线模型的性能比较。我们发现:

    • (1)SGL-ED 在所有指标上始终优于所有基线模型。这再次验证了结合自监督学习的合理性和有效性。

    • (2)LightGCN 的性能优于 NGCFMult-VAE ,这与 LightGCN 论文中的主张一致。Mult-VAEAlibaba-iFashion 上的性能与 NGCFLightGCN 相当,而在 Amazon-Book 上优于 NGCF

    • (3)DNN + SSLAmazon-Book 上最强的基线模型,显示出自监督学习在推荐中的巨大潜力。令人惊讶的是,在其他数据集上,DNN + SSL 的表现比 SGL-ED 差得多。这表明直接在 ID embedding 上应用自监督学习可能不是最优的,比在 graph representation 应用自监督学习要差。

    • (4) :此外,我们进行了显著性检验,p-value<0.05 表明 SGL-ED 相对于最强基线模型的改进在所有六种情况下在统计上都是显著的。

1.3.2 SGL 的优势(RQ2)

  1. 在本节中,我们从三个维度研究SGL 的优势:长尾推荐、训练效率、对噪声的鲁棒性。由于篇幅有限,我们仅报告 SGL-ED 的结果,其他变体也有类似的观察结果。

  2. 长尾推荐:如引言所述,GNN-based 的推荐模型很容易受到长尾问题的影响。为了验证 SGL 是否有望解决这个问题,我们根据 items 的流行度将 items 分为十组,同时保持每组的 interactions 总数相同。GroupID 越大,itemsdegrees 越大。然后,我们将整个数据集的 Recall@20 指标分解为单个组的贡献,如下所示:

    Recall=1Mu=1Mg=110|(lrecu)(g)ltestu||ltestu|=g=110Recall(g)

    其中:M 是用户数量;lrecultestu 分别是用户 utop-K recommendation list 中的 items 、以及测试集中的 relevant items (即,ground-truth )。因此,Recall(g) 衡量了第 g 组的推荐性能。我们在 Figure 4 中报告结果,发现:

    • LightGCN 倾向于推荐 high-degree items,而使长尾 items 的曝光较少。具体来说,在三个数据集中,尽管第 10 组仅包含 item spaces0.83%0.83%0.22% ,但该组分别贡献了总 Recall 得分的 39.72%39.92%51.92% 。这表明,由于 interaction 信号的稀疏,LightGCN 很难学习到长尾 items 的高质量 representations

      我们的 SGL在缓解这个问题方面显示出潜力:在三个数据集中,第 10 组的贡献分别下降到 36.27%29.15%35.07%

    • 结合 Table 3Figure 4 进行分析,我们发现 SGL 的性能提升主要来自于对 sparse interactionsitems 的准确推荐。这再次验证了 representation learning 从辅助监督中受益匪浅,从而能够比 LightGCN 更好地建立这些 itemsrepresentations

  3. 训练效率:自监督学习已在预训练自然语言模型和预训练图结构中证明了其优越性。因此,我们研究它对训练效率的影响。Figure 5 展示了 SGL-EDLightGCNYelp2018Amazon-Book 数据集上的训练曲线。随着训练 epochs 增加,上图显示 training loss 的变化,下图记录测试集上的性能变化。我们有以下发现:

    • 显然,在 Yelp2018Amazon-Book 数据集上,SGL 的收敛速度比 LightGCN 快得多。具体来说,SGL 在第 18 epochs 和第 16 epochs 达到最佳性能,而 LightGCN 在这两个数据集上分别需要 720 epochs700 epochs 。这表明我们的 SGL 可以大大减少训练时间,同时取得显著的性能提升。我们将这种加速归因于两个因素:

      • (1)SGL 采用 InfoNCE loss 作为自监督学习目标,使模型能够从多个负样本中学习 representations ,而 LightGCN 中的 BPR loss 只使用一个负样本,限制了模型的感知范围。

      • (2):如前所述,通过适当设置 τSGL 受益于动态的 hard negative mininghard 负样本提供有意义且更大的梯度来指导 optimization

    • 另一个发现是,BPR loss 快速下降期的起点略晚于 Recall 快速上升期。这表明 BPR lossranking 任务之间存在差距。我们将在未来的工作中对这一现象进行深入研究。

  4. Noisy Interactions 的鲁棒性:我们还进行实验来检验 SGLnoisy interactions 的鲁棒性。为此,我们在训练集中添加一定比例的对抗性的样本(即 5%10%15%20%negative user-item interactions )来污染训练集,同时保持测试集不变。Figure 6 展示了在 Yelp2018Amazon-Book 数据集上的结果。

    • 显然,添加 noise data 会降低 SGLLightGCN 的性能。然而,SGL 的性能下降幅度低于 LightGCN ;此外,随着噪声比例增加,两条性能下降曲线之间的差距变得更加明显。这表明,通过比较节点的不同增强的视图,SGL 能够找出有用的模式,特别是节点的 informative 的图结构,并减少对某些边的依赖。简而言之,SGL 为消除推荐中 false positive interactions 的噪声提供了不同的视角。

    • 聚焦于 Amazon-Book 数据集,添加 20% 额外 noisy interactionsSGL 性能仍优于无噪声数据集上的LightGCN 。这进一步证明了 SGL 相对于 LightGCN 的优越性和鲁棒性。

    • 我们发现 SGLYelp2018 数据集上更鲁棒。可能的原因是 Amazon-Book 数据集比 Yelp2018 稀疏得多,添加噪声数据对 Amazon-Book 图结构的影响比 Yelp2018 更大。

1.3.3 对 SGL 的研究(RQ3)

  1. 我们继续研究 SGL 中的不同设计。首先研究超参数 τ 的影响,接着探索将 SGL 用作现有 graph-based 的推荐模型的预训练的潜力,最后研究自监督学习目标函数中负样本选择的影响。由于篇幅限制,我们省略了 iFashion 数据集上的结果,其趋势与 Yelp2018Amazon-Book 数据集相似。

  2. 温度 τ 的影响:如前所述, τhard negative mining 中起着关键作用。Figure 7 展示了模型性能随不同 τ 的变化曲线。

    我们可以观察到:

    • (1) :增大 τ 的值(例如 1.0 )会导致性能变差,且需要更多训练 epochs 才能收敛,这是因为难以区分 hard negativeseasy negatives

    • (2):相反,将 τ 固定为过小的值(例如 0.1 )会损害模型性能,因为少量的 negatives 的梯度主导了优化过程,失去了在自监督学习目标中添加多个负样本的优势。

    简而言之,我们建议在 0.1 - 1.0 范围内仔细调优 τ

  3. 预训练的影响:上述实验已经证明了 SGL 的有效性,其中主体监督任务和自监督任务是联合优化的。这里我们想回答一个问题:推荐性能能从 pre-trained 模型中受益吗?为了实现这一目标,我们首先预训练自监督任务以获得模型参数,用这些参数初始化 LightGCN,然后通过优化主体任务对模型进行微调。我们将这个变体称为 SGL-pre ,并在 Table 5 中展示其与 SGL 的比较结果。

    • 显然,尽管 SGL-pre 在两个数据集上的性能都不如 SGL-ED ,但它的结果仍优于 LightGCN (见Table 3 )。我们的自监督任务能够为 LightGCN 提供更好的初始化,这与先前研究(《A Simple Framework for Contrastive Learning of Visual Representations》)中的观察结果一致。

    • 然而,联合训练的更好性能表明,主体任务和辅助任务中的 representations 相互增强。

  4. 负样本的影响:此外,我们还研究了辅助任务中负样本选择的影响。考虑两个变体:

    • (1) SGL-ED-batch :它区分节点类型,将一个 mini-batch 中的用户和 item 分别视为用户和 itemsnegative views

    • (2) SGL-ED-merge :它将一个 mini-batch 中的节点视为负样本,不区分节点类型。

    我们在 Table 5 中报告比较结果。

    • SGL-ED-batch 的性能优于 SGL-ED-merge ,这表明区分异质节点类型的必要性。

    • 此外,SGL-ED-batch 与将整个 spaces of users and items 视为负样本的 SGL-ED 性能相当。这表明在 mini-batch 中训练自监督学习任务是一种有效的替代方法。